﻿using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;

namespace BankOcrDojo
{
    public static partial class BankOcrParser
    {
        internal static IEnumerable<IEnumerable<SegmentZiffer>> ZerlegeSegmentZahlenInSegmentZiffern( IEnumerable<SegmentZahl> segmentZahlen )
        {
            Trace.WriteLine( string.Format( "ZerlegeSegmentZahlenInSegmentZiffern( {0} )", segmentZahlen.Count() ) );

            foreach( var segmentZahl in segmentZahlen )
            {
                var segmentZiffern = new Collection<SegmentZiffer>();

                var position = 0;
                while( position < segmentZahl.Zeilen[0].Length )
                {
                    var segmentZiffer = new SegmentZiffer( new[]
                    {
                        new string( segmentZahl.Zeilen[0].Skip( position ).Take( 3 ).ToArray() ), new string( segmentZahl.Zeilen[1].Skip( position ).Take( 3 ).ToArray() ), new string( segmentZahl.Zeilen[2].Skip( position ).Take( 3 ).ToArray() )
                    } );
                    segmentZiffern.Add( segmentZiffer );
                    position += 4;
                }

                yield return segmentZiffern;
            }
        }
    }
}